home *** CD-ROM | disk | FTP | other *** search
-
- #include "parsehtm.h"
- #include <stdio.h>
-
- Dictionary userData;
-
- #ifndef strcasecmp
-
- int (strcasecmp)(const char *s1,const char *s2)
- {
- int returnValue = 1;
-
- if((NULL != s1)&&(NULL != s2))
- {
- char test1,test2;
-
- for(;;++s1,++s2)
- {
- test1 = tolower(*s1);
- test2 = tolower(*s2);
-
- if(test1 != test2)
- {
- returnValue =
- ((test1 < test2) ? -1:+1);
- break;
- }
- else if(test1 == '\0')
- {
- returnValue = 0;
- break;
- }
- }
- }
- else if((NULL == s1)&&(NULL == s2))
- {
- returnValue = 0;
- }
-
- return returnValue;
- }
-
- #endif
-
-
- void textHandler(String ts,String as,String et,Dictionary td)
- {
- String value = 0;
- String data = 0;
- String name = 0;
- int len = 0;
- char lenStr[8];
-
- value = dict_valueForKey(td,"TYPE");
-
- if(value && value->string)
- {
- if(!strcasecmp(value->string,"text"))
- {
- name = dict_valueForKey(td,"NAME");
- if(name && name->string)
- {
- data = dict_valueForKey(userData,name->string);
- }
-
- if(data && value)
- {
- value = dict_valueForKey(td,"VALUE");
-
- if(value)
- {
- string_setStringValue(value,data->string);
- }
- else
- {
- value = string_alloc(8);
- string_setStringValue(value, data->string);
- dict_setValueForKey(td,"VALUE",value);
- }
-
- len = strlen(data->string);
- sprintf(lenStr,"%d",len);
-
- value = dict_valueForKey(td,"SIZE");
-
- if(value)
- {
- string_setStringValue(value, lenStr);
- }
- else
- {
- value = string_alloc(8);
- string_setStringValue(value, lenStr);
- dict_setValueForKey(td,"SIZE",value);
- }
- }
- else
- {
- value = dict_valueForKey(td,"VALUE");
-
- if(value)
- {
- string_empty(value);
- }
- else
- {
- value = string_alloc(1);
- dict_setValueForKey(td,"VALUE",value);
- }
- }
-
- value = stringForTagDict(td);
-
- if(value)
- {
- string_setStringValue(ts,value->string);
-
- string_free(value);
- }
- }
- }
- }
-
- void main(int argc, char *argv[])
- {
- String output;
- String value;
-
- userData = dict_alloc();
-
- initializeHtmlParsingLibrary();
-
- dict_setValueForKey(handlerDict,"INPUT",textHandler);
-
- value = string_alloc(8);
- string_setStringValue(value,"Stephen");
- dict_setValueForKey(userData,"name",value);
-
- value = string_alloc(4);
- string_setStringValue(value,"AMEX");
- dict_setValueForKey(userData,"card",value);
-
- output = parseHtml("txt_c.htm");
-
- if(output && output->string)
- {
- printf("Content-type: text/html\n\n");
- fwrite(output->string,sizeof(char),strlen(output->string),stdout);
- printf("\n");
-
- string_free(output);
- }
-
- exit(0);
- }
-
-